var fixHelper = function(e, ui) {
		ui.children().each(function() {
			$(this).width($(this).width());
		});
		return ui;
	};

function texto(texto, parametros){
	if (idiomaXML == null) {
		var string;
		$.ajax({
			dataType: 'xml',
			url: '/constructore/configuracao/idioma/pt-br.xml',
			cache: false,
			timeout: 1000,
			async:	false,
			success: function(xml){
				idiomaXML = xml;
				string	=	retornaTextoIdiomaXML(texto, parametros);
			},
			error: function(){
				/* PARAR O JAVASCRIPT */
			}
		});
		return string;
	}
	else {
		return retornaTextoIdiomaXML(texto, parametros);
	}
}

function retornaTextoIdiomaXML (texto, parametros) {
	texto	=	$(idiomaXML).find('define[id="' + texto + '"]').text();
	arrayTexto	=	texto.split('||');
	
	if (arrayTexto.length == 1) {
		return texto;
	}
	else {
		if ($.isArray(parametros) && (arrayTexto.length - 1 == parametros.length)) {
			textoFinal	=	"";
			for(var i = 0; i < arrayTexto.length; i++) {
				if (i == arrayTexto.length - 1) {
					textoFinal	+=	arrayTexto[i];
				}
				else {
					textoFinal	+=	arrayTexto[i] + parametros[i];
				}
			}
			return textoFinal;
		}
		else {
			return 'Faltam parâmetros: ' + texto;
		}
	}
}

function getNiveis() {
	var niveis	=	new Array(	texto('NIVEL_FUNDAMENTAL'),
								texto('NIVEL_MEDIO'),
								texto('NIVEL_GRADUACAO'),
								texto('NIVEL_POS_GRADUACAO'),
								texto('NIVEL_OUTRO'));
	return niveis;
}

function getTitulacoes() {
	var titulacoes	=	new Array(	texto('TITULACAO_GRADUACAO'),
									texto('TITULACAO_ESPECIALIZACAO'),
									texto('TITULACAO_MESTRADO'),
									texto('TITULACAO_DOUTORADO'));
	return titulacoes;
}

function getPeriodos() {
	var periodos	=	new Array();
	for (var i = 1; i <= __MAXIMO_PERIODOS__; i++) {
		periodos[i]	=	i;
	}
	return periodos;
}

function preencheSelect(select, listaOpcoes, opcaoVazia) {
	if (opcaoVazia) {
		var optionVazia	=	$(document.createElement('option'));
		optionVazia.val('--');
		optionVazia.html('--');
		
		select.append(optionVazia);
	}
	for (opcao in listaOpcoes) {
		var option	=	$(document.createElement('option'));
		option.attr({
			'value':	listaOpcoes[opcao]
		});
		option.html(listaOpcoes[opcao]);
		select.append(option);
	}
}

function dadosTipoUsuario(tipo) {
	var fieldset	=	$(document.createElement('fieldset'));
	fieldset.attr({
		'class':	'fieldsetForm1',
		'id':		'fieldsetDadosTipoUsuario' + tipo
	});
	fieldset.append($(document.createElement('legend')).html(texto('TITULO_DADOS_ACADEMICOS')));
	
	//INSERCAO DE UMA LINHA DE FORMULARIO COM INPUT TEXTO
	var divItemForm1	=	$(document.createElement('div'));
	divItemForm1.attr({
		'class':	'divItemForm1'
	});
	var label			=	$(document.createElement('label'));
	label.attr({
		'for':		'strInstituicao',
		'class':	'labelItemObrigatorioForm1'
	});
	label.html(texto('DADOS_INSTITUICAO'));
	var divCampoForm1	=	$(document.createElement('div'));
	divCampoForm1.attr({
		'class':	'divCampoForm1'
	});
	var inputForm1		=	$(document.createElement('input'));
	inputForm1.attr({
		'type':		'text',
		'name':		'strInstituicao',
		'id':		'strInstituicao',
		'maxlength':	'200',
		'class':	'inputTextoGrandeForm1'
	});
	
	divItemForm1.append(label);
	divItemForm1.append(divCampoForm1);
	divCampoForm1.append(inputForm1);
	fieldset.append(divItemForm1);
	
	if (tipo == 'Aluno') {
		//CAMPO NIVEL
		var divItemForm1	=	$(document.createElement('div'));
		divItemForm1.attr({
			'class':	'divItemForm1'
		});
		var label			=	$(document.createElement('label'));
		label.attr({
			'for':		'strNivel',
			'class':	'labelItemObrigatorioForm1'
		});
		label.html(texto('DADOS_NIVEL'));
		var divCampoForm1	=	$(document.createElement('div'));
		divCampoForm1.attr({
			'class':	'divCampoForm1'
		});
		var selectForm1		=	$(document.createElement('select'));
		selectForm1.attr({
			'name':		'strNivel',
			'id':		'strNivel',
			'class':	'selectForm1'
		});
		preencheSelect(selectForm1, getNiveis(), true);
		
		divItemForm1.append(label);
		divItemForm1.append(divCampoForm1);
		divCampoForm1.append(selectForm1);
		fieldset.append(divItemForm1);
		
		//CAMPO CURSO
		var divItemForm1	=	$(document.createElement('div'));
		divItemForm1.attr({
			'class':	'divItemForm1'
		});
		var label			=	$(document.createElement('label'));
		label.attr({
			'for':		'strCurso',
			'class':	'labelItemObrigatorioForm1'
		});
		label.html(texto('DADOS_CURSO'));
		var divCampoForm1	=	$(document.createElement('div'));
		divCampoForm1.attr({
			'class':	'divCampoForm1'
		});
		var inputForm1		=	$(document.createElement('input'));
		inputForm1.attr({
			'type':		'text',
			'name':		'strCurso',
			'id':		'strCurso',
			'class':	'inputTextoGrandeForm1',
			'maxlength':	'200'
		});
		
		divItemForm1.append(label);
		divItemForm1.append(divCampoForm1);
		divCampoForm1.append(inputForm1);
		fieldset.append(divItemForm1);
		
		//CAMPO PERIODO
		var divItemForm1	=	$(document.createElement('div'));
		divItemForm1.attr({
			'class':	'divItemForm1'
		});
		var label			=	$(document.createElement('label'));
		label.attr({
			'for':		'strPeriodo',
			'class':	'labelItemObrigatorioForm1'
		});
		label.html(texto('DADOS_PERIODO'));
		var divCampoForm1	=	$(document.createElement('div'));
		divCampoForm1.attr({
			'class':	'divCampoForm1'
		});
		var selectForm1		=	$(document.createElement('select'));
		selectForm1.attr({
			'name':		'strPeriodo',
			'id':		'strPeriodo',
			'class':	'selectForm1'
		});
		preencheSelect(selectForm1, getPeriodos(), true);
		
		divItemForm1.append(label);
		divItemForm1.append(divCampoForm1);
		divCampoForm1.append(selectForm1);
		fieldset.append(divItemForm1);
	}
	else {
		//CAMPO INSTITUTO
		var divItemForm1	=	$(document.createElement('div'));
		divItemForm1.attr({
			'class':	'divItemForm1'
		});
		var label			=	$(document.createElement('label'));
		label.attr({
			'for':		'strInstituto',
			'class':	'labelItemObrigatorioForm1'
		});
		label.html(texto('DADOS_INSTITUTO'));
		var divCampoForm1	=	$(document.createElement('div'));
		divCampoForm1.attr({
			'class':	'divCampoForm1'
		});
		var inputForm1		=	$(document.createElement('input'));
		inputForm1.attr({
			'type':		'text',
			'name':		'strInstituto',
			'id':		'strInstituto',
			'class':	'inputTextoGrandeForm1',
			'maxlength':	'200'
		});
		
		divItemForm1.append(label);
		divItemForm1.append(divCampoForm1);
		divCampoForm1.append(inputForm1);
		fieldset.append(divItemForm1);
		
		//CAMPO DEPARTAMENTO
		var divItemForm1	=	$(document.createElement('div'));
		divItemForm1.attr({
			'class':	'divItemForm1'
		});
		var label			=	$(document.createElement('label'));
		label.attr({
			'for':		'strDepartamento',
			'class':	'labelItemObrigatorioForm1'
		});
		label.html(texto('DADOS_DEPARTAMENTO'));
		var divCampoForm1	=	$(document.createElement('div'));
		divCampoForm1.attr({
			'class':	'divCampoForm1'
		});
		var inputForm1		=	$(document.createElement('input'));
		inputForm1.attr({
			'type':		'text',
			'name':		'strDepartamento',
			'id':		'strDepartamento',
			'class':	'inputTextoGrandeForm1',
			'maxlength':	'200'
		});
		
		divItemForm1.append(label);
		divItemForm1.append(divCampoForm1);
		divCampoForm1.append(inputForm1);
		fieldset.append(divItemForm1);
		
		//CAMPO PERIODO
		var divItemForm1	=	$(document.createElement('div'));
		divItemForm1.attr({
			'class':	'divItemForm1'
		});
		var label			=	$(document.createElement('label'));
		label.attr({
			'for':		'strTitulacao',
			'class':	'labelItemObrigatorioForm1'
		});
		label.html(texto('DADOS_TITULACAO'));
		var divCampoForm1	=	$(document.createElement('div'));
		divCampoForm1.attr({
			'class':	'divCampoForm1'
		});
		var selectForm1		=	$(document.createElement('select'));
		selectForm1.attr({
			'name':		'strTitulacao',
			'id':		'strTitulacao',
			'class':	'selectForm1'
		});
		preencheSelect(selectForm1, getTitulacoes(), true);
		
		divItemForm1.append(label);
		divItemForm1.append(divCampoForm1);
		divCampoForm1.append(selectForm1);
		fieldset.append(divItemForm1);
		
		//CAMPO ENDERECO INSTITUCIONAL
		var divItemForm1	=	$(document.createElement('div'));
		divItemForm1.attr({
			'class':	'divItemForm1'
		});
		var label			=	$(document.createElement('label'));
		label.attr({
			'for':		'strEnderecoInstitucional',
			'class':	'labelItemForm1'
		});
		label.html(texto('DADOS_ENDERECO_INSTITUCIONAL'));
		var divCampoForm1	=	$(document.createElement('div'));
		divCampoForm1.attr({
			'class':	'divCampoForm1'
		});
		var inputForm1		=	$(document.createElement('input'));
		inputForm1.attr({
			'type':		'text',
			'name':		'strEnderecoInstitucional',
			'id':		'strEnderecoInstitucional',
			'class':	'inputTextoGrandeForm1',
			'maxlength':	'200'
		});
		
		divItemForm1.append(label);
		divItemForm1.append(divCampoForm1);
		divCampoForm1.append(inputForm1);
		fieldset.append(divItemForm1);
		
		//CAMPO TELEFONE INSTITUCIONAL
		var divItemForm1	=	$(document.createElement('div'));
		divItemForm1.attr({
			'class':	'divItemForm1'
		});
		var label			=	$(document.createElement('label'));
		label.attr({
			'for':		'strTelefoneInstitucionalDDD',
			'class':	'labelItemForm1'
		});
		label.html(texto('DADOS_TELEFONE_INSTITUCIONAL'));
		var divCampoForm1	=	$(document.createElement('div'));
		divCampoForm1.attr({
			'class':	'divCampoForm1'
		});
		var inputFormDDD			=	$(document.createElement('input'));
		inputFormDDD.attr({
			'type':		'text',
			'name':		'strTelefoneInstitucionalDDD',
			'id':		'strTelefoneInstitucionalDDD',
			'class':	'inputTelefoneDDD',
			'maxlength':	'2'
		});
		divCampoForm1.append(inputFormDDD);
		
		var inputFormPrefixo		=	$(document.createElement('input'));
		inputFormPrefixo.attr({
			'type':		'text',
			'name':		'strTelefoneInstitucionalPrefixo',
			'id':		'strTelefoneInstitucionalPrefixo',
			'class':	'inputTelefonePrefixo',
			'maxlength':	'4'
		});
		divCampoForm1.append(inputFormPrefixo);
		
		var inputFormSufixo			=	$(document.createElement('input'));
		inputFormSufixo.attr({
			'type':		'text',
			'name':		'strTelefoneInstitucionalSufixo',
			'id':		'strTelefoneInstitucionalSufixo',
			'class':	'inputTelefonePrefixo',
			'maxlength':	'4'
		});
		divCampoForm1.append(inputFormSufixo);
		
		var span					=	$(document.createElement('span'));
		span.attr({
			'class':	'spanInfoExtraForm1'
		});
		span.html(texto('DADOS_FORMATO_TELEFONE'));
		divCampoForm1.append(span);
		
		inputFormDDD.keyup(function(){
			if ($(this).val().length == $(this).attr('maxlength')) {
				inputFormPrefixo.focus();
			}
		});
		inputFormPrefixo.keyup(function(){
			if ($(this).val().length == $(this).attr('maxlength')) {
				inputFormSufixo.focus();
			}
		});
		
		divItemForm1.append(label);
		divItemForm1.append(divCampoForm1);
		fieldset.append(divItemForm1);
		
		//CAMPO CURSOS PRETENDIDOS
		var divItemForm1	=	$(document.createElement('div'));
		divItemForm1.attr({
			'class':	'divItemForm1'
		});
		var label			=	$(document.createElement('label'));
		label.attr({
			'for':		'strCursosPretendidos',
			'class':	'labelItemObrigatorioForm1'
		});
		label.html(texto('DADOS_CURSOS_PRETENDIDOS'));
		var divCampoForm1	=	$(document.createElement('div'));
		divCampoForm1.attr({
			'class':	'divCampoForm1'
		});
		var textareaForm1		=	$(document.createElement('textarea'));
		textareaForm1.attr({
			'name':		'strCursosPretendidos',
			'id':		'strCursosPretendidos',
			'class':	'textareaForm1',
			'rows':		'20',
			'cols':		'100'
		});
		
		divItemForm1.append(label);
		divItemForm1.append(divCampoForm1);
		divCampoForm1.append(textareaForm1);
		fieldset.append(divItemForm1);
	}
	
	return fieldset;
}

function termoCompromisso(tipo, elementoAnterior) {
	$('#fieldsetTermoCompromisso').remove();
	
	var fieldset	=	$(document.createElement('fieldset'));
	fieldset.attr({
		'class':	'fieldsetForm1',
		'id':		'fieldsetTermoCompromisso'
	});
	var legend		=	$(document.createElement('legend'));
	legend.html(texto('TITULO_TERMO_DE_COMPROMISSO'));
	
	var divItemTermo	=	$(document.createElement('div'));
	divItemTermo.attr({
		'class':	'divItemTermo'
	});
	var divCampoTermo	=	$(document.createElement('div'));
	divCampoTermo.attr({
		'class':	'divCampoTermo'
	});
	var p				=	$(document.createElement('p'));
	p.html(tipo == 'Aluno' ? texto('DADOS_TERMO_DE_COMPROMISSO_ALUNO') : texto('DADOS_TERMO_DE_COMPROMISSO_PROFESSOR'));
	
	divItemTermo.append(divCampoTermo);
	divCampoTermo.append(p);
	fieldset.append(divItemTermo);
	
	var divRadioTermo	=	$(document.createElement('div'));
	divRadioTermo.attr({
		'class':	'divRadioTermo'
	});
	
	var radio			=	$(document.createElement('input'));
	radio.attr({
		'id':		'strConcordarTermoSim',
		'name':		'strConcordarTermo',
		'value':	'sim',
		'type':		'radio',
		'class':	'inputRadioForm1'
	});
	var label			=	$(document.createElement('label'));
	label.attr({
		'for':		'strConcordarTermoSim',
		'class':	'labelRadioForm1'
	});
	label.html(texto('DADOS_TERMO_DE_COMPROMISSO_CONCORDO'));
	
	divRadioTermo.append(radio);
	divRadioTermo.append(label);
	
	var radio			=	$(document.createElement('input'));
	radio.attr({
		'id':		'strConcordarTermoNao',
		'name':		'strConcordarTermo',
		'value':	'nao',
		'type':		'radio',
		'class':	'inputRadioForm1'
	});
	var label			=	$(document.createElement('label'));
	label.attr({
		'for':		'strConcordarTermoNao',
		'class':	'labelRadioForm1'
	});
	label.html(texto('DADOS_TERMO_DE_COMPROMISSO_NAO_CONCORDO'));
	
	divRadioTermo.append(radio);
	divRadioTermo.append(label);
	
	fieldset.append(divRadioTermo);
	fieldset.append(legend);
	
	elementoAnterior.after(fieldset);
}

function expandirTrTable2(elemento, tipoTd, conteudo) {
	$(elemento).removeClass(tipoTd + 'Table2Expansivel');
	$(elemento).addClass(tipoTd + 'ExpandidaTable2');
	$(elemento).click(function(){esconderTrTable2(elemento, tipoTd, conteudo);});
    var tr	=	$(elemento).parent();
    tr.after(conteudo);
    conteudo.show();
}

function esconderTrTable2(elemento, tipoTd, conteudo) {
 	var idTd	=	$(elemento).attr('id').replace('tdExpandir', '');
 	var conteudo	=	$('#trExpandido' + idTd).detach();
 	$(elemento).removeClass(tipoTd + 'ExpandidaTable2');
 	$(elemento).addClass(tipoTd + 'Table2Expansivel');
 	$(elemento).click(function(){expandirTrTable2(elemento, tipoTd, conteudo);});
}

function esconderDivAssociacoes (divAssociacoes) {
	var spanAssociacoes = divAssociacoes.prev();
	var divAssociacoesEscondida = true;
	var mouseDentro = false;

	divAssociacoes.hide();
	
	spanAssociacoes.css({
		'cursor':		'pointer',
		'z-index':		'1',
		'position':		'relative'
	});
	
	divAssociacoes.css({
		'position':		'absolute',
		'background-color':	'#FFFFFF',
		'border':		'1px solid #000000',
		'width':		'200px',
		'text-align':	'left',
		'padding':		'20px 5px 5px 5px',
		'z-index':		'2'
	});
	
	spanAssociacoes.mousemove(function(){
		if (divAssociacoesEscondida) {
			divAssociacoes.css({
				'top':		(spanAssociacoes.position().top - 5) + "px",
				'right':	($('html').width() - (spanAssociacoes.position().left + spanAssociacoes.width() + 5)) + "px"
			});
			
			spanAssociacoes.css('z-index', '3');
			
			divAssociacoesEscondida	= false;
			divAssociacoes.show(100);
		}
	});
	
	spanAssociacoes.mouseleave(function(){
		divAssociacoes.mouseleave();
	});
	
	divAssociacoes.mousemove(function(){
		mouseDentro	=	true;
	});
	
	divAssociacoes.mouseleave(function(){
		setTimeout(function(){
			if (!mouseDentro) {
				divAssociacoesEscondida	= true;
				spanAssociacoes.css('z-index', '1');
				divAssociacoes.hide(200);
			}
		}, 2000);
		mouseDentro	=	false;
	});
}
